from mcp.server.fastmcp import FastMCP

mcp = FastMCP("roymcpdemo")

@mcp.tool()
def add(a: int, b: int) -> int:
    """
    将两个整数相加并返回结果。

    Args:
        a (int): 第一个整数
        b (int): 第二个整数

    Returns:
        int: 两个整数的和
    """
    print(f"roy mcp demo called : add({a}, {b})")
    return a + b


@mcp.tool()
def weather(city: str):
    """
    获取指定城市的天气信息。

    Args:
        city (str): 要查询天气的城市名称

    Returns:
        str: 包含城市名称和天气描述的字符串
    """
    return "城市" + city + ",今天天⽓不错"


@mcp.resource("greeting://{name}")
def greeting(name: str) -> str:
    """
    根据提供的姓名生成问候语。

    Args:
        name (str): 要问候的人的姓名

    Returns:
        str: 包含问候语的字符串
    """
    print(f"roy mcp demo called : 问候({name})")
    return f"Hello, {name}!"


if __name__ == "__main__":
    # 以stdio协议暴露服务。
    # mcp.run(transport='stdio')
    # 以SSE协议方式启动并暴露服务，支持服务器发送事件通信模式
    mcp.run(transport='sse')

